package com.xmzs.midjourney.domain.vo;

import java.util.Date;

import com.xmzs.midjourney.domain.MjRoomMsg;
import com.xmzs.midjourney.enums.MessageTypeEnum;
import com.xmzs.midjourney.enums.MidjourneyMsgActionEnum;
import com.xmzs.midjourney.enums.MidjourneyMsgStatusEnum;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;



/**
 * Midjourney 创作记录视图对象 mj_room_msg
 *
 * @author lixg
 * @date 2023-08-09
 */
@Data
@AutoMapper(target = MjRoomMsg.class)
public class MjRoomMsgVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    private Long id;

    /**
     * 会话 id
     */
    private Long mjRoomId;

    /**
     * 用户 id
     */
    private String userId;

    /***
     * MJ服务器ID
     */
    private String guildId;

    /**
     * 消息类型
     */
    private MessageTypeEnum type;

    /**
     * 用户输入
     */
    private String prompt;

    /**
     * 最终的输入
     */
    private String finalPrompt;

    /**
     * 响应内容
     */
    private String responseContent;

    /**
     * 指令动作
     */
    private MidjourneyMsgActionEnum action;

    /**
     * 压缩图名称
     */
    private String compressedImageName;

    /**
     * 原图名称
     */
    private String originalImageName;

    /**
     * uv 指令的父消息 id
     */
    private Integer uvParentId;

    /**
     * u 指令使用比特位
     */
    private Integer uUseBit;

    /**
     * uv 位置
     */
    private Integer uvIndex;

    /**
     * 状态
     */
    private MidjourneyMsgStatusEnum status;

    /**
     * discord 结束时间
     */
    private Date discordFinishTime;

    /**
     * discord 开始时间
     */
    private Date discordStartTime;

    /**
     * discord 消息 id
     */
    private String discordMessageId;

    /**
     * discord 频道 id
     */
    private String discordChannelId;

    /**
     * discord 图片地址
     */
    private String discordImageUrl;

    /**
     * 模板ID
     */
    private String templateId;

    /**
     * 失败原因
     */
    private String failureReason;

    /**
     * 是否删除 0 否 1 是
     */
    private Boolean isDeleted;

    private Date createTime;

    private Date updateTime;



}
